/*
 *      game.h
 *      
 *      2009 Víctor Manuel Ochoa <kanito8a@gmail.com>
 *      
 *      This program is free software; you can redistribute it and/or modify
 *      it under the terms of the GNU General Public License as published by
 *      the Free Software Foundation; either version 2 of the License, or
 *      (at your option) any later version.
 *      
 *      This program is distributed in the hope that it will be useful,
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *      GNU General Public License for more details.
 *      
 *      You should have received a copy of the GNU General Public License
 *      along with this program; if not, write to the Free Software
 *      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 *      MA 02110-1301, USA.
 */


#ifndef GAME_H
#define GAME_H

#include "particles.h"
#include "entity.h"
#include "video.h"
#include "particles.h"
#include "animedentity.h"
#include "anim.h"
#include "fx.h"
#include "log.h"
#include "time.h"
#include "noxii.h"
#include "manager.h"
#include "texturemanager.h"
#include "skydome.h"
#include "point.h"
#include "filereader.h"
#include "level.h"

#include <SDL/SDL.h>
#include <stdio.h>
#include <string.h>

const char PROGRAM_NAME[] = "Noxiis";
const char PROGRAM_VERSION[] = "0.001";

typedef enum
{
	STATE_PLAY,
	STATE_EXIT
}GameState;

class Game
{
	public:
	
		Game();
		virtual ~Game();
		bool init();
		void play();
		void freeMemory();
		
	private:
		
		GameState m_state;		
		Video m_video;
		Manager m_game_manager;
		TextureManager m_game_textures;	
		Log  *m_pLog;
		Time m_timer;
		bool m_active;
		bool m_end_game;
		
		Noxii *NOXII_DE_PRUEBA;
		
		void keyUpdate();
				
};

#endif /* GAME_H */ 
